1. Field of the Invention
This invention relates to wireless communication systems and, more particularly, to a digital modulation system that uses modified orthogonal codes, such as M-ary orthogonal Keying (MOK) to encode information.
2. Description of Related Art
A wireless communications channel can rarely be modeled as purely line-of-site. Therefore, one must consider the many independent paths that are the result of scattering and reflection of a signal between the many objects that lie between and around the transmitting station and the receiving station. The scattering and reflection of the signal creates many different “copies” of the transmitted signal (“multipath signals”) arriving at the receiving station with various amounts of delay, phase shift and attenuation. As a result, the received signal is made up of the sum of many signals, each traveling over a separate path. Since these path lengths are not equal, the information carried over the radio link will experience a spread in delay as it travels between the transmitting station and the receiving station. The amount of time dispersion between the earliest received copy of the transmitted signal and the latest arriving copy having a signal strength above a certain level is often referred to as delay spread. Delay spread can cause intersymbol interference (ISI). In addition to delay spread, the same multipath environment causes severe local variations in the received signal strength as the multipath signals are added constructively and destructively at the receiving antenna. A multipath component is the combination of multipath signals arriving at the receiver at nearly the same delay. These variations in the amplitude of the multipath components is generally referred to as Rayleigh fading, which can cause large blocks of information to be lost.
Digital modulation techniques can be used to improve the wireless communication link by providing greater noise immunity and robustness. In certain systems, the data to be transmitted over the wireless communication link can be represented or encoded as a time sequence of symbols, where each symbol has M finite states, and each symbol represents N bits of information. Digital modulation involves choosing a particular code symbol from the M finite code symbols based on the N bits of information applied to the modulator. For M-ary keying schemes, log2 M bits of information can be represented or encoded by M different codes or code symbols which are transmitted. The transmitted codes are received as several delayed replicas of the transmitted codes, and the receiver correlates the delayed versions of the received codes with the known codes by performing a summation of autocorrelation values for all possible multipath delays.
The autocorrelation sidelobes show the correlation values between the known codes and the time shifted replicas of the received codes. If a code is the same or is a shifted version of itself, then the code will have a high level of autocorrelation or autocorrelation sidelobes. For example, for a code (111−1), the autocorrelation for a zero shift is:
code111−1shifted code111−1multiplication111 1correlation = sum of multiplied values = 4.For a shift of one chip, the autocorrelation is:
code111−1shifted code11 1−1multiplication11−1correlation = sum of multiplied values = 1.For a shift of 2 chips, the autocorrelation is:
code111−1shifted code1 11−1multiplication1−1correlation = sum of multiplied values = 0.For a shift of 3 chips, the autocorrelation is:
code111−1shifted code 111−1multiplication−1correlation = sum of multiplied values = −1.Larger shifts give an autocorrelation value of zero, so the maximum autocorrelation sidelobe in this example has a value or magnitude of 1. In this example, −1's are used in the receiver instead of 0's. The autocorrelation sidelobes give an indication about multipath performance. If the autocorrelation sidelobes are large, several multipath components heavily interfere with each other.
Cross-correlation refers to a code being correlated with different codes. M-ary orthogonal keying is a form of digital modulation which provides good cross-correlation between codes by encoding data using orthogonal codes which do not interfere with each other. FIG. 1 shows a general block diagram of an M-ary orthogonal keying system 10. In this example, input data is scrambled by a scrambler 12 as specified in the current Institute of Electrical and Electronics Engineers (IEEE) 802.11 standard. The data is then provided to a serial-to-parallel converter 14 which converts the serial data into 8 parallel bits forming a data symbol. A first modulator 16 receives three (3) of the parallel bits and produces a code of length 8 chips from a look-up table, and a second modulator 18 receives three (3) of the parallel bits and produces a second code of length 8 from a look-up table. Chips are actually code bits, but they are called chips to distinguish them from data bits. In this implementation, one of the parallel bits is provided to a first exclusive-or (XOR) gate 20 which inverts the code from the first modulator if the bit has a value of one. Similarly, the last remaining bit is provided to a second XOR gate 22 which inverts the code from the second modulator 18 if the bit has a value of one. In this embodiment, the output Iout of the XOR gate 20 is applied to signal circuitry 21 to convert all 0's to −1's for transmission. The circuitry 21 can also manipulate, convert and/or process Iout before being used to modulate a carrier with frequency ω by mixer 24. The output Qout from the XOR 22 is applied to signal circuitry 23 to convert all 0's into −1's for transmission. The circuitry 23 can manipulate, convert and/or process Qout before being used to modulate a 90 degrees shifted carrier by mixer 26. In this particular embodiment, the first modulator 16 corresponds to the in-phase (I) component of the output signal, and the second modulator 18 corresponds to the quadrature (Q) component of the output signal.
The modulators 16 and 18 are performing M-ary orthogonal keying or encoding because each receive log2 M bits of information and chooses one out of M orthogonal codes. By having both I and Q components with different polarities, a total of (2M)2 possible code combinations exist, so a total of 2+2 log2 M bits can be encoded into one orthogonal code. In this example, M is equal to 8. The M codes in an M-ary orthogonal keying system are usually based on M chip Walsh codes. Using the M chip Walsh codes in an M-ary orthogonal keying system is advantageous because the M chip Walsh codes are orthogonal, which means they exhibit zero cross-correlation, so the M chip Walsh codes tend to be easily distinguishable from each other. However, using Walsh codes as the orthogonal codes can create potential problems. For example, when Walsh code 0 (all 1's) is selected as the code symbol, Walsh code 0 may appear as an unmodulated continuous wave (CW) carrier signal.
To avoid the Walsh code 0 CW modulation, M-ary orthogonal keying systems have been proposed which use a cover sequence of (11111100) to modify the Walsh codes by inverting the last two bits of each Walsh code. Although the Walsh code 0 CW modulation is resolved by modifying the Walsh codes in this fashion, the modified Walsh codes retain the poor autocorrelation and spectral properties which are inherent to Walsh codes. To counter the poor autocorrelation and spectral properties of the Walsh codes, current systems multiply the output signal by a pseudo-random noise (PN) sequence. Some systems multiply by a PN sequence having a length much larger than the Walsh code as described in E. G. Tiedemann, A. B. Salmasi and K. S. Gilhousen, “The Design And Development of a Code Division Multiple Access (CDMA) System for Cellular and Personal Communications,” Proceedings of IEEE PIMRC, London, Sep. 23–25, 1991, pp. 131–136. Other systems multiply the Walsh codes by a PN sequence with the same length as the Walsh code. However, the autocorrelation properties of the resulting codes are still lacking. If the transmitted codes lack sufficient autocorrelation properties, the multipath performance of the system can be poor because the system will have difficulty detecting the delayed or shifted versions of the transmitted codes.